﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using QuanLyBanHang.OBJECT;
using QuanLyBanHang.DAL;

namespace QuanLyBanHang
{
    public partial class frmEditNCC : Form
    {
        private DataGridView dgv = null;
        private frmNCC ncc = null;
        public static int Action;

        public frmEditNCC(DataGridView fdgv, frmNCC fncc)
        {
            dgv = fdgv;
            ncc = fncc;
            InitializeComponent();
        }

        private string CheckNull()
        {
            object[] obj = { txtMa, txtTenNCC, txtDiaChi, txtSDT, txtEmail };
            string error = "";
            foreach (Control item in obj)
            {
                if (item.Text == "")
                    error += "Bạn chưa nhập: " + item.Tag.ToString().ToUpper() + "." + '\n';
            }
            return error;
        }
        private string GetID()
        {
            DataTable dt = DalNhaCungCap.GetID();
            if (dt.Rows.Count != 0)
            {
                string MaNCC = dt.Rows[0][0].ToString();
                int so = int.Parse(MaNCC.Substring(3, MaNCC.Length - 3)) + 1;
                return string.Format("{0:NCC000}", so);
            }
            else
                return "NCC001";
        }
        private void frmEditNCC_Load(object sender, EventArgs e)
        {
            if (Action == 1)
            {
                this.Text = "Thêm nhà cung cấp";
                txtMa.Text = this.GetID();
            }                       
            else if (Action == 2)
            {
                this.Text = "Sửa thông tin nhà cung cấp";
                txtMa.Text = dgv.CurrentRow.Cells[0].Value.ToString();
                txtTenNCC.Text = dgv.CurrentRow.Cells[1].Value.ToString();
                txtDiaChi.Text = dgv.CurrentRow.Cells[2].Value.ToString();
                txtSDT.Text = dgv.CurrentRow.Cells[3].Value.ToString();
                txtEmail.Text = dgv.CurrentRow.Cells[4].Value.ToString();
            }         
        }

        private void luuButton_Click(object sender, EventArgs e)
        {
            if (CheckNull() != "")
                MessageBox.Show(CheckNull(), "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            else
            {
                if (Action == 1 && CheckAll())
                {
                    if (!DataHelper.CheckAll(txtEmail.Text, "Email", "NhaCungCap"))
                    {
                        MessageBox.Show("Email này đã có người sử dụng !!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        txtEmail.Focus();
                        txtEmail.Clear();
                    }
                    else if (!DataHelper.CheckAll(txtSDT.Text, "SoDienThoai", "NhaCungCap"))
                    {
                        MessageBox.Show("Số điện thoại này đã có người sử dụng !!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        txtSDT.Clear();
                        txtSDT.Focus();
                    }
                    else
                    {
                        ObjNhaCungCap obj = new ObjNhaCungCap(txtMa.Text, txtTenNCC.Text, txtDiaChi.Text, txtSDT.Text, txtEmail.Text, true);
                        int thucthi = DalNhaCungCap.InsertSupplier(obj);
                        if (thucthi > 0)
                        {
                            MessageBox.Show("Nhà cung cấp: " + txtTenNCC.Text.ToUpper() + " đã được thêm vào CSDL thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            ncc.frmNCC_Load(null, null);
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Nhà cung cấp: " + txtTenNCC.Text.ToUpper() + " chưa được thêm vào CSDL", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        }
                    }
                }
                else if (Action == 2 && CheckAll())
                {
                    ObjNhaCungCap obj = new ObjNhaCungCap(txtMa.Text, txtTenNCC.Text, txtDiaChi.Text, txtSDT.Text, txtEmail.Text, true);
                    int thucthi = DalNhaCungCap.UpdateSupplier(obj);
                    if (thucthi > 0)
                    {
                        MessageBox.Show("Nhà cung cấp: " + txtTenNCC.Text.ToUpper() + " đã được sửa thông tin thành công", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        ncc.frmNCC_Load(null, null);
                        this.Close();
                    }
                    else
                        MessageBox.Show("Nhà cung cấp: " + txtTenNCC.Text.ToUpper() + " chưa được sửa", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
            }
        }

        private bool CheckAll()
        {
            if (!(txtSDT.Text.Length >= 10))
            {
                MessageBox.Show("Số điện thoại phải là 10 hoặc 11 số !!!");
                txtSDT.Focus();
                return false;
            }
            else if (!DataHelper.isValidEmail(txtEmail.Text.Trim()))
            {
                MessageBox.Show("Định dạng Email không đúng !!!", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtEmail.Focus();
                return false;
            }
            else
            {
                return true;
            }
        }
    }
}
